Many applications today may be implemented as a collection of components that interact with each other. To support such interaction, these components may communicate with each other. For example, upon the occurrence of particular “events,” such as a user clicking on a button of one component, the component where the event originates may send an “event notification” to one or more additional components. These other components may take such a notification as a cue to perform additional functions.